Data processing systems utilize a cache as a temporary storage buffer between a processor and a slower external memory. A cache may variously be categorized based upon the type of information cached, the manner of searching the cache, the mapping of the cache to external memory, the physical distribution of the cache, and the hierarchical level of the cache among other attributes. A unified cache, for example, may store both data information and instruction information. Although the cache can enhance performance of the data processing system, the cache may also experience failures in time (FIT) that degrade the reliability of the system.
Error management techniques including error detection codes (EDC) and error correction codes (ECC) may be applied to improve the reliability of a cache. As the sophistication of the EDC or ECC increases, the reliability of the cache may be improved at the expense of performance of the cache. Performance and reliability can vary greatly depending upon the configuration of the cache and the attributes of the application relying upon the cache. Some applications place a higher value on performance while other applications place a higher value on reliability. This inherent conflict is problematic for cache configuration.